package com.ruoyi.sale.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;

/**
 * @author WangChangShuo
 * @date 2022年05月26日 9:45
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SaleGoodsModel extends BaseEntity {
    private Long purchaseCycle;//采购的周期
    private String purchaseUnit;//采购的周期单位
    private String saleGoodsNum;
    private int expectNum;//预计在采购周期内销售的数量
    @JsonSerialize(using = ToStringSerializer.class)
    private Double tendency;
    private Long selectId;
    private int returnNum;
    private int historyNum;
    private int selectCycle;//选择要查询的天数周期
    private int purchaseNum;//预计采购量
    /**
     * 销货单从表 自增主键
     */
    private Long saleGoodsModelId;
    private int amount;
    /**
     * 销售订单从表 自增主键
     */
    private Long saleorderModelId;
    /**
     * 采购订单从表 自增主键
     */
    private Long purchaseModelId;
    /**
     * 销货单 主表
     */
    private Long saleGoodsId;
    /*
            出库的总数量(单位是支)
             */
    private int allNum;
    /*
   执行的总数量 按支来计算
    */
    private int executeallNum;
    /*
            剩余的总数量 按支作为单位
             */
    private int remainingallNum;
    /**
     * 产品主键
     */
    private Long productId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 产品类型
     */
    private String productType;
    /**
     * 产品规格主键
     */
    private Long modelNo;
    /**
     * 医疗器械注册证主键
     */
    private Long productProofId;
    /**
     * 型号唯一码
     */
    private String modelCode;
    /**
     * 单位
     */
    private String unit;
    /*
    创建销售订单子表时的单位
     */
    private String units;
    /**
     * 数量
     */
    private int num;
    private int outNum;
    private int saleorderNum;
    /**
     * 用于对比数量
     */
    private int nums;
    /*
    退货的总数量
     */
    private int backnum;
    private int surplusnum;
    /**
     * 单价
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal price;
    /**
     * 税率
     */
    private String taxRate;
    /**
     * 含税单价
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal taxPrice;
    /**
     * 总金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal total;
    /**
     * 含税金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal taxTotal;
    /**
     * 生产商名称
     */
    private String manufacturerName;
    /**
     * 产品注册证
     */
    private String medicalNumber;
    /**
     * 注册证到期日
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date medicalEndTime;
    private String userName;
    /**
     * 批号
     */
    private String batch;
    /**
     * 生产日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date productionDate;
    /**
     * 失效日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date effectiveDate;
    private char isreturn;
    /**
     * 现存量
     */
    private Long warehousingNum;
    /**
     * 数量相符
     */
    private String numMatch;
    /**
     * 数量不符描述
     */
    private String numRemark;
    /**
     * 包装相符
     */
    private String packMatch;
    /**
     * 包装不符描述
     */
    private String packRemark;
    /**
     * 效期相符
     */
    private String dataMatch;
    /**
     * 效期不符描述
     */
    private String dataRemark;
    /**
     * 运输方式
     */
    private String shippingMatch;
    /**
     * 运输方式不符描述
     */
    private String shippingRemark;
    /**
     * 资料主键
     */
    private Long informationId;
    /**
     * 出厂检验报告名称
     */
    private String factoryInspectionName;
    /**
     * 出厂检验报告地址
     */
    private String factoryInspectionAddress;
    /**
     * 报关单名称
     */
    private String customsName;
    /**
     * 报关单地址
     */
    private String customsAddress;
    /**
     * 商检报告名称
     */
    private String commodityName;
    /**
     * 商检报告地址
     */
    private String commodityAddress;
    /**
     * 消杀证明名称
     */
    private String disinfectName;
    /**
     * 消杀证明地址
     */
    private String disinfectAddress;
    /**
     * 核酸证明名称
     */
    private String nucleicAcidName;
    /**
     * 核酸证明地址
     */
    private String nucleicAcidAddress;
    /**
     * 执行状态
     */
    private String executeStatus;
    /**
     * 执行数量
     */
    private int executeNum;
    /**
     * 剩余数量
     */
    private int remainingNum;
    /**
     * 公司主键
     */
    private Long deptId;
    /**
     * 客户公司主键
     */
    private Long customerId;
    /**
     * 公司名称
     */
    private String deptName;
    private Long factor;
    private Long saleorderExecuteNum;
    private Long saleorderRemainingNum;
    private String beginTime;
    private String endTime;

    public int getPurchaseNum() {
        return purchaseNum;
    }

    public void setPurchaseNum(int purchaseNum) {
        this.purchaseNum = purchaseNum;
    }

    public int getSelectCycle() {
        return selectCycle;
    }

    public void setSelectCycle(int selectCycle) {
        this.selectCycle = selectCycle;
    }

    public int getExpectNum() {
        return expectNum;
    }

    public void setExpectNum(int expectNum) {
        this.expectNum = expectNum;
    }

    public Long getPurchaseCycle() {
        return purchaseCycle;
    }

    public void setPurchaseCycle(Long purchaseCycle) {
        this.purchaseCycle = purchaseCycle;
    }

    public String getPurchaseUnit() {
        return purchaseUnit;
    }

    public void setPurchaseUnit(String purchaseUnit) {
        this.purchaseUnit = purchaseUnit;
    }

    public int getHistoryNum() {
        return historyNum;
    }

    public void setHistoryNum(int historyNum) {
        this.historyNum = historyNum;
    }

    public String getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public Double getTendency() {
        return tendency;
    }

    public void setTendency(Double tendency) {
        this.tendency = tendency;
    }

    public Long getSelectId() {
        return selectId;
    }

    public void setSelectId(Long selectId) {
        this.selectId = selectId;
    }

    public String getSaleGoodsNum() {
        return saleGoodsNum;
    }

    public void setSaleGoodsNum(String saleGoodsNum) {
        this.saleGoodsNum = saleGoodsNum;
    }

    public int getReturnNum() {
        return returnNum;
    }

    public void setReturnNum(int returnNum) {
        this.returnNum = returnNum;
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public int getExecuteallNum() {
        return executeallNum;
    }

    public void setExecuteallNum(int executeallNum) {
        this.executeallNum = executeallNum;
    }

    public int getRemainingallNum() {
        return remainingallNum;
    }

    public void setRemainingallNum(int remainingallNum) {
        this.remainingallNum = remainingallNum;
    }

    public String getUnits() {
        return units;
    }

    public void setUnits(String units) {
        this.units = units;
    }

    public int getOutNum() {
        return outNum;
    }

    public void setOutNum(int outNum) {
        this.outNum = outNum;
    }

    public int getSurplusnum() {
        return surplusnum;
    }

    public void setSurplusnum(int surplusnum) {
        this.surplusnum = surplusnum;
    }

    public int getBacknum() {
        return backnum;
    }

    public void setBacknum(int backnum) {
        this.backnum = backnum;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public char getIsreturn() {
        return isreturn;
    }

    public void setIsreturn(char isreturn) {
        this.isreturn = isreturn;
    }

    public Long getFactor() {
        return factor;
    }

    public void setFactor(Long factor) {
        this.factor = factor;
    }

    public int getAllNum() {
        return allNum;
    }

    public void setAllNum(int allNum) {
        this.allNum = allNum;
    }

    public Long getSaleorderExecuteNum() {
        return saleorderExecuteNum;
    }

    public void setSaleorderExecuteNum(Long saleorderExecuteNum) {
        this.saleorderExecuteNum = saleorderExecuteNum;
    }

    public Long getSaleorderRemainingNum() {
        return saleorderRemainingNum;
    }

    public void setSaleorderRemainingNum(Long saleorderRemainingNum) {
        this.saleorderRemainingNum = saleorderRemainingNum;
    }

    public int getSaleorderNum() {
        return saleorderNum;
    }

    public void setSaleorderNum(int saleorderNum) {
        this.saleorderNum = saleorderNum;
    }

    public Long getSaleorderModelId() {
        return saleorderModelId;
    }

    public void setSaleorderModelId(Long saleorderModelId) {
        this.saleorderModelId = saleorderModelId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getExecuteStatus() {
        return executeStatus;
    }

    public void setExecuteStatus(String executeStatus) {
        this.executeStatus = executeStatus;
    }

    public int getExecuteNum() {
        return executeNum;
    }

    public void setExecuteNum(int executeNum) {
        this.executeNum = executeNum;
    }

    public int getRemainingNum() {
        return remainingNum;
    }

    public void setRemainingNum(int remainingNum) {
        this.remainingNum = remainingNum;
    }

    public Long getSaleGoodsModelId() {
        return saleGoodsModelId;
    }

    public void setSaleGoodsModelId(Long saleGoodsModelId) {
        this.saleGoodsModelId = saleGoodsModelId;
    }

    public Long getProductProofId() {
        return productProofId;
    }

    public void setProductProofId(Long productProofId) {
        this.productProofId = productProofId;
    }

    public Long getSaleGoodsId() {
        return saleGoodsId;
    }

    public void setSaleGoodsId(Long saleGoodsId) {
        this.saleGoodsId = saleGoodsId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public Long getModelNo() {
        return modelNo;
    }

    public void setModelNo(Long modelNo) {
        this.modelNo = modelNo;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(String taxRate) {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxPrice() {
        return taxPrice;
    }

    public void setTaxPrice(BigDecimal taxPrice) {
        this.taxPrice = taxPrice;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }

    public BigDecimal getTaxTotal() {
        return taxTotal;
    }

    public void setTaxTotal(BigDecimal taxTotal) {
        this.taxTotal = taxTotal;
    }

    public String getManufacturerName() {
        return manufacturerName;
    }

    public void setManufacturerName(String manufacturerName) {
        this.manufacturerName = manufacturerName;
    }

    public String getMedicalNumber() {
        return medicalNumber;
    }

    public void setMedicalNumber(String medicalNumber) {
        this.medicalNumber = medicalNumber;
    }

    public Date getMedicalEndTime() {
        return medicalEndTime;
    }

    public void setMedicalEndTime(Date medicalEndTime) {
        this.medicalEndTime = medicalEndTime;
    }

    public String getBatch() {
        return batch;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public Date getProductionDate() {
        return productionDate;
    }

    public void setProductionDate(Date productionDate) {
        this.productionDate = productionDate;
    }

    public Date getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public Long getWarehousingNum() {
        return warehousingNum;
    }

    public void setWarehousingNum(Long warehousingNum) {
        this.warehousingNum = warehousingNum;
    }

    public String getNumMatch() {
        return numMatch;
    }

    public void setNumMatch(String numMatch) {
        this.numMatch = numMatch;
    }

    public String getNumRemark() {
        return numRemark;
    }

    public void setNumRemark(String numRemark) {
        this.numRemark = numRemark;
    }

    public String getPackMatch() {
        return packMatch;
    }

    public void setPackMatch(String packMatch) {
        this.packMatch = packMatch;
    }

    public String getPackRemark() {
        return packRemark;
    }

    public void setPackRemark(String packRemark) {
        this.packRemark = packRemark;
    }

    public String getDataMatch() {
        return dataMatch;
    }

    public void setDataMatch(String dataMatch) {
        this.dataMatch = dataMatch;
    }

    public String getDataRemark() {
        return dataRemark;
    }

    public void setDataRemark(String dataRemark) {
        this.dataRemark = dataRemark;
    }

    public String getShippingMatch() {
        return shippingMatch;
    }

    public void setShippingMatch(String shippingMatch) {
        this.shippingMatch = shippingMatch;
    }

    public String getShippingRemark() {
        return shippingRemark;
    }

    public void setShippingRemark(String shippingRemark) {
        this.shippingRemark = shippingRemark;
    }

    public Long getInformationId() {
        return informationId;
    }

    public void setInformationId(Long informationId) {
        this.informationId = informationId;
    }

    public String getFactoryInspectionName() {
        return factoryInspectionName;
    }

    public void setFactoryInspectionName(String factoryInspectionName) {
        this.factoryInspectionName = factoryInspectionName;
    }

    public String getFactoryInspectionAddress() {
        return factoryInspectionAddress;
    }

    public void setFactoryInspectionAddress(String factoryInspectionAddress) {
        this.factoryInspectionAddress = factoryInspectionAddress;
    }

    public String getCustomsName() {
        return customsName;
    }

    public void setCustomsName(String customsName) {
        this.customsName = customsName;
    }

    public String getCustomsAddress() {
        return customsAddress;
    }

    public void setCustomsAddress(String customsAddress) {
        this.customsAddress = customsAddress;
    }

    public String getCommodityName() {
        return commodityName;
    }

    public void setCommodityName(String commodityName) {
        this.commodityName = commodityName;
    }

    public String getCommodityAddress() {
        return commodityAddress;
    }

    public void setCommodityAddress(String commodityAddress) {
        this.commodityAddress = commodityAddress;
    }

    public String getDisinfectName() {
        return disinfectName;
    }

    public void setDisinfectName(String disinfectName) {
        this.disinfectName = disinfectName;
    }

    public String getDisinfectAddress() {
        return disinfectAddress;
    }

    public void setDisinfectAddress(String disinfectAddress) {
        this.disinfectAddress = disinfectAddress;
    }

    public String getNucleicAcidName() {
        return nucleicAcidName;
    }

    public void setNucleicAcidName(String nucleicAcidName) {
        this.nucleicAcidName = nucleicAcidName;
    }

    public String getNucleicAcidAddress() {
        return nucleicAcidAddress;
    }

    public void setNucleicAcidAddress(String nucleicAcidAddress) {
        this.nucleicAcidAddress = nucleicAcidAddress;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public int getNums() {
        return nums;
    }

    public void setNums(int nums) {
        this.nums = nums;
    }

    public Long getPurchaseModelId() {
        return purchaseModelId;
    }

    public void setPurchaseModelId(Long purchaseModelId) {
        this.purchaseModelId = purchaseModelId;
    }
}
